package org.yelongframework.excel.data.collect.sheet;

import java.util.Objects;

/**
 * 工作表数据收集方案
 * 
 * @since 1.0.0
 */
public abstract class SheetDataCollectScheme implements Cloneable {

	/** 工作表数据收集模式 */
	private final SheetDataCollectMode sheetDataCollectMode;

	// ==================================================构造器==================================================

	/**
	 * @param sheetDataCollectMode 工作表数据收集模式
	 */
	public SheetDataCollectScheme(SheetDataCollectMode sheetDataCollectMode) {
		this.sheetDataCollectMode = Objects.requireNonNull(sheetDataCollectMode, "sheetDataCollectMode");
	}

	// ==================================================填充模式==================================================

	/**
	 * @return 工作表数据收集模式
	 */
	public SheetDataCollectMode getSheetDataCollectMode() {
		return sheetDataCollectMode;
	}

	// ==================================================验证属性==================================================

	/**
	 * 校验数据是否符合规范
	 * 
	 * @throws SheetDataCollectException 工作表数据收集异常
	 */
	public abstract void check() throws SheetDataCollectException;

}
